#ifndef __SDC_ALARM_H__
#define __SDC_ALARM_H__

namespace HWApp
{
typedef struct {
    char alarmName[64];
    char alarmSource[32];
    char metaData[0];
} ALARM_REPORT_PARAM;

typedef enum {
    HBTP_METHOD_UNDEF = 0,
    HBTP_METHOD_CREATE = 1,
    HBTP_METHOD_GET = 2,
    HBTP_METHOD_UPDATE = 3,
    HBTP_METHOD_DELETE = 4,
    HBTP_METHOD_BUTT,
}HBTP_METHOD_E;

typedef enum {
    ALARM_URI_CONFIG_PARAM = 0,
    ALARM_URI_INPUT_REGISTER = 1,
    ALARM_URI_OUTPUT_REGISTER = 2,
    ALARM_URI_EVENT_PUBLISH = 3,
    ALARM_URI_SOURCE_PARAM = 4,
    ALARM_URI_ACTION_PARAM = 5,
    ALARM_URI_APP_PARAM = 6,
    ALARM_URI_APPLANG_PARAM = 7,
    ALARM_URI_ACTIONLANG_PARAM = 8,
    ALARM_URI_RESTORE_DEFAULT_DATA = 9,
} ALARM_URI_RES;

class AlarmDemo
{
public:
    AlarmDemo(void);
    ~AlarmDemo(void);
    int32_t example(void);

    int32_t InitFd(void);
    int32_t CreateSource(void);
    int32_t EventHandle(HBTP_METHOD_E method);

private:
    AlarmDemo(const AlarmDemo&);
    AlarmDemo& operator=(const AlarmDemo&);
    AlarmDemo(const AlarmDemo&&);
    AlarmDemo& operator=(const AlarmDemo&&);

    int32_t m_fd;
};
}

#endif /* __SDC_ALARM_H__ */